import java.util.concurrent.TimeUnit;

public interface PoolFactory<T> {
    ConnectionPool<T> newConnectionPool(ConnectionSource<T> src, int capacity);

    ConnectionPool<T> newConnectionPool(ConnectionSource<T> src,
                                        int min, int max,
                                        long keepAliveTime, TimeUnit unit);
}